package ModelLager;
import java.util.ArrayList;

/**
 * Write a description of class VareContainer here.
 * 
 * @author (Gruppe 5) 
 * @version (a version number or a date)
 */
public class VareContainer
{
    private ArrayList<Vare> varer;
    private static VareContainer instance;
    
    /**
     * VareContainer Constructor
     *
     */
    private VareContainer()
    {
        varer = new ArrayList<Vare>();
    }
    
    /**
     * Method getInstance
     *
     * @return The return value
     */
    public static VareContainer getInstance()
    {
        if(instance == null)
        {
            instance = new VareContainer();
        }
        return instance;
    }
    
    /**
     * Method addVare
     *
     * @param v A parameter
     * 
     * Methoden retunere boolean found true eller false
     * alt efter om den vare der bliver tilføjet har et
     * id der som en anden vare har.
     */
    public boolean addVare(Vare v)
    {
        boolean found = false;
        
        for(Vare va : varer)
        {
            if(va.getID() == v.getID())
            {
                found = true;
            }
        }
        
        if(!found)
        {
            varer.add(v);
            return found;
        }
        else
        {
            return found;
        }
    }
    
    /**
     * Method getArrayList
     *
     * @return The return value
     * 
     * Retunere hele Vare ArrayListen.
     */
    public ArrayList<Vare> getArrayList()
    {
        return varer;
    }
    
    /**
     * Method getVareIndex
     *
     * @param index A parameter
     * @return The return value
     * 
     * Retunere vare med det passende index.
     */
    public Vare getVareIndex(int index)
    {
        return varer.get(index);
    }

    /**
     * Method findVare
     *
     * @param id A parameter
     * @return The return value
     * 
     * Methoden bruger id til at finde en bestemt vare
     * og retunerer den.
     */
    public Vare findVare(int id)
    {
        int index = 0;
        Vare v = null;
        boolean found = false;
        
        while(index < varer.size() && !found)
        {
            v = varer.get(index);
            
            if(v.getID() == id)
            {
                found = true;
            }
            else
            {
                index++;
            }
        }
        
        if(found)
        {
            return varer.get(index);
        }
        else
        {
            return null;
        }
    }
}
